﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AutomatedTP
{
    /// <summary>
    /// Class for storing information about test cases
    /// </summary>
    public class TC
    {
        private string name;
        private string trace;
        private string author; //optional
        private Tproc procedure;
        
        //collection of functions!!!!
        private List<Stub> stubs = new List<Stub>();
        private List<Wrap> wraps = new List<Wrap>();


        /// <summary>
        /// Gets the proc.
        /// </summary>
        /// <returns></returns>
        public Tproc GetProc()
        {
            return procedure;
        }

        /// <summary>
        /// Gets the stubs.
        /// </summary>
        /// <returns></returns>
        public List<Stub> GetStubs()
        {
            return stubs;
        }

        /// <summary>
        /// Gets the wraps.
        /// </summary>
        /// <returns></returns>
        public List<Wrap> GetWraps()
        {
            return wraps;
        }

        /// <summary>
        /// Gets the name.
        /// </summary>
        /// <returns></returns>
        public string GetName()
        {
            return name;
        }

        /// <summary>
        /// Gets the traceability.
        /// </summary>
        /// <returns></returns>
        public string GetTrace()
        {
            return trace;
        }

        /// <summary>
        /// Gets the author.
        /// </summary>
        /// <returns></returns>
        public string GetAuthor()
        {
            return author;
        }
        
        /// <summary>
        /// Sets the proc.
        /// </summary>
        /// <param name="proc">The proc.</param>
        public void SetProc(Tproc proc)
        {
            procedure = proc;
        }

        /// <summary>
        /// Adds the stub.
        /// </summary>
        /// <param name="stub">The stub.</param>
        public void AddStub(Stub stub)
        {
            stubs.Add(stub);
        }

        /// <summary>
        /// Adds the wrap.
        /// </summary>
        /// <param name="wrap">The wrap.</param>
        public void AddWrap(Wrap wrap)
        {
            wraps.Add(wrap);
        }

        /// <summary>
        /// Sets the name.
        /// </summary>
        /// <param name="name">The name.</param>
        public void SetName(string name)
        {
            this.name = name;
        }

        /// <summary>
        /// Sets the trace.
        /// </summary>
        /// <param name="trace">The trace.</param>
        public void SetTrace(string trace)
        {
            this.trace = trace;
        }

        /// <summary>
        /// Sets the author.
        /// </summary>
        /// <param name="author">The author.</param>
        public void SetAuthor(string author)
        {
            this.author = author;
        }
    }
}
